import numpy as np
import pandas as pd

data = pd.DataFrame({"Fruits": ["Apple", "Orange", " Banana ", " Mango ", " Watermelon ", " Grapefruit "],
                     "Price": [3, 2, 2.5, 3.5, 2, 3.5]})
# (1) 打印DataFrame 的结果；
print("(1)")
print(data)
# (2) 分别使用loc和iloc抽出“Orange”一行数据；
print("(2)")
print("使用loc：")
print(data.loc[data['Fruits'] == 'Orange'])
print("使用iloc：")
print(data.iloc[1])
# (3) 提取含有字符串 " Banana "的行，输出返回值的数据类型；
print("(3)")
bnn = data.loc[data['Fruits'] == 'Banana']
print(f"返回值的数据类型为：{type(bnn)}")
# (4) 提取出|Price最贵的水果所在的行
print("(4)")
most_expensive = data.loc[data['Price'].idxmax()]
print("price最贵的水果所在行为：")
print(most_expensive)
# (5) 提取出价格为3元的水果名称；
print("(5)")
price_3 = data['Fruits'][data['Price'] == 3]
print("价格为3元的水果有：")
print(price_3)
# (6) 添加一行数据[ 'Peach', 5]（尝试使用pandas.concat）；
print("(6)")
new_row = pd.DataFrame([['Peach', 5]], columns=['Fruits', 'Price'])
data = pd.concat([data, new_row], ignore_index=True)
print("添加后的数据")
print(data)
# (7) 添加一列数据“销量” ，值自拟；
data['sale_num'] = [4156, 6512, 56412, 48512, 5412, 2204, 1231]
# (8) 添加一列数据“总金额”，其值通过代码计算获得；
data['total_price'] = data['sale_num'] * data['Price']
# (9) 将表单按照总金额从高到底重新排序；
print("(9)")
data = data.sort_values(by='total_price', ascending=False)
print("将表单按照总金额从高到低重新排序：")
print(data)
# (10) 分别使用loc和iloc抽出 Peach 和Banana行的数据
print("(10)")
peach_row = data.loc[data['Fruits'] == 'Peach']
print("使用loc抽出Peach的数据：")
print(peach_row)
banana_row_iloc = data.iloc[data[data['Fruits'].str.contains(" Banana ")].index[0]]
print("使用iloc抽出Banana的数据：")
print(banana_row_iloc)
# (11) 提取并输出总金额高于所有总金额中位数的水果的单价；
print("(11)")
data_1 = data['Price'][data['Price'] > data['Price'].median()]
print("高于所有总金额中位数水果单价：")
print(data_1)
# (12) 将表单中的列标题全部改为中文。
data.columns = ['水果', '单价', '销量', '总金额']
#(13) 将 DataFrame 在当前目录下输出为“Fruits price. csv”文件，并利用excel 打开查看。
data.to_csv('Fruits_price.csv', encoding='gbk')
# (14) 在 excel 中将“Fruits price. csv”文件另存为“Fruits price. xlsx”，再尝试读取操作，并输出前5行数据。
print("(14)")
data_2 = pd.read_excel('Fruits_price.xlsx')
print(data_2.head())
